Robotic Process Automation For Telecom Expense Management Information Change Detection And Notification

ABSTRACT

A system and method incorporating Robotic Processing Automation and Machine Leaning to finding telecom expense management information in a way that said RPA agents can match plan information to user usage data as well as notify other downstream RPAs of changes so they can run their cycles in a timely fashion.

FIELD OF THE INVENTION

The present invention relates to systems and methods for obtainingtelecom expense management related information through robotic processautomation. RPA agents (or robots, or bots) navigate supplier sites fornew offerings and pricing changes, which may impact the expensemanagement process or offer enhanced value to customers. Further,regulatory sites for requirements and taxation are also analyzed andfactored in by the system. These agents can propose changes to otherautomation bots that optimize the spend as well as give them a heads upthat there are changes so they can start processing invoices andanalyzing the changes in offerings earlier than when the typical expensemanagement bill processing would have started. This ensures that earlypayment incentives are secured delays in processing can be avoided.

BACKGROUND OF THE INVENTION

As robotic process automation takes a growing role in telecom expensemanagement analysis, there is a need for detection and earlynotification of changes to billing models, available plans, and telecomrelated taxation and regulatory rules. While many bots run routinely toprocess invoices, if a change has occurred on a vendor website, thesebots may require manual intervention or advanced problem resolution.This can delay invoice processing and potentially add significant delayswhich can eat into savings obtained through early payment incentives.

Telecom expense management (TEM) is an industry which requires theretrieval and processing of a vast amount of complex data from multiplesources which must then be treated and processed in finite timelines.The savings obtained are often tied directly into the compensation ofTEM service firms and capturing all incentives, including the timesensitive ones, is paramount to the longevity and financial health ofthese entities.

TEM service providers can have 1000's of customers each of which mayhave 1000's of employees and potentially dozens of carriers andequipment and service suppliers for which invoices must be gathered,validated, and paid monthly. However, carrier plans change, equipmentmanufacturers come out with new devices, and customers' needs can allshift from month to month. Recommending the best performing and mosteconomical plan for all of these customers is challenging in view of theconstantly shifting environment. RPAs that continually monitor andanalyze changes and their applicability to a given enterprise allowthese TEM providers to remain pro-active and to provide relevant andtimely recommendations to their customers.

It would thus be very beneficial to have a system that is capable ofdetecting and analyzing changes in telecom provider offerings that arerelevant to a TEM companies' customers.

It would be further beneficial to have such an RPA recognize thechanging needs of the TEM companies' customers and compare these toexisting plans in place as well as new plans.

It would also be beneficial to have the RPA recognize changes and toprovide early notification of these changes to other RPA's that parse orprocess the data so that those RPA's can start their processing cyclesearlier in the billing cycle to allow ample time to resolve anydiscrepancies or difficulties in the automated process.

Therefore, a need exists for a system that can apply machine learning todetect and act upon changes to TEM related supplier and regulatorywebsites to optimize customer plans and costs.

SUMMARY OF THE INVENTION

Therefore, it is an object of the present invention to provide improvedmethods and controls to create RPA bots to gather data from websites andportals containing TEM related information and to notify other RPA botsof changes that could negatively impact their ability to functionautonomously so that payment schedules can be maintained.

It is further desired to provide a system and method to allow such anautomation bot to also detect, or have as an input, the desired idealplan from recent activity performed by the end users using such telecomplans.

It is still further desired to provide a system and method thatincorporates machine learning to optimize how these bots recognize thetarget data they are looking to obtain and how they navigate thelandscape of the webpages or portals on which this data is housed.

It is still further desired to provide a system and method thatincorporates machine learning to optimize how these bots read and usethe user data and voice usage data from these portals to formulate theneeds of the end users with respect to available plans.

These and other objects are achieved by providing a Robotic ProcessAutomation (RPA) system for identifying updates to website data used byother RPA routines is provided. The system includes a computer having astorage and a network connection. A first RPA program includes softwareexecuting on the computer which is adapted to access known data on thestorage. The known data is indicative of website data used by a secondsoftware. The first RPA program accesses one or more websites via thenetwork to perform a comparison, based on the known data, to determineif changes have been made to the one or more websites which changes mayimpact if the second software can obtain data from the one or morewebsites. The first RPA program issues an alert accessible to the secondsoftware if the comparison indicates that the website data used by thesecond software may be accessible in a different way than indicated bythe known data. The first RPA program adapted to receive a response fromthe second software indicative if accessibility of the website data haschanged, wherein computer updates the known data.

In certain aspects the known data which has been updated is used in thecomparison at a next time the first RPA software accesses one or morewebsites to perform the comparison. In another aspect the first RPAprogram determines modeled website data based on the website data andcompares to the known data to determine structure or storage locationsof the website data has changed. In certain aspects the known data isindicative of a model of at least one of the one or more websites, themodel indicates where the website data used by the second software isstored based on a prior retrieval of website data by the secondsoftware, the first RPA program performs the comparison by accessing thewebsite data to determine modeled website data indicative of a secondmodel of the at least one of the one or more websites, the comparisondetermines if the model and the second model are different. In certainaspects the alert is indicative of differences between the model and thesecond model. In other aspects the response is indicative of whether thedifferences impact an ability of the second software to obtain data forthe second software to run. In still other aspects, based on theresponse indicating the differences do not impact the ability of thesecond software to obtain data, the first RPA program modifies how itdetermines modeled website data.

In other aspects the response indicates accessibility of the websitedata the second software uses has not changed based the first RPAprogram modifies how it issues alerts based on the comparison to reducea likelihood that the alert associated with the response would have beenissued. In still other aspects the first RPA program and the secondsoftware are part of one software program executing on the computer. Inother aspects the one or more websites include a telecom providerwebsite which communicates information on telecommunication serviceplans.

In other aspects a Robotic Process Automation (RPA) system is providedfor identifying updates to website data used by other software, thesystem includes a computer having a storage and a network connection.Software executes on the computer comprising a first RPA softwareadapted to access one or more telecom fee websites at a first time andmodel the one or more telecom fee websites to generate modeled websitedata at the first time, said modeled website data stored in the storageand the first RPA software utilizes the modeled website data to identifywebsite data used by a second software. The first RPA software isadapted to access the one or more telecom fee websites at a second time,later than the first time, to identify changes to the website comparedto the modeled website data and the first RPA software issuing anotification accessible to the second software indicative that thechanges may impact an ability of the second software to capture dataused by the second software. The second software issues a responseaccessible to said first RPA software indicative of if the changesimpact the ability of the second software to capture data used by thesecond software and based on the alert, the first RPA software updateshow alerts are issued based on the response.

In certain aspects the first RPA software updates how alerts are issuedby reducing likelihood an alert would be issued based on identifiedchanges which previously issued an alert with a response indicating thechanges do not impact the ability of the second software to capture thedata used by the second software. In other aspects the first and secondtimes are each prior to an expected time that the second software willobtained the website data. In still other aspects the first and secondtimes are both after a most recent time that the second softwareobtained the website data. In yet other aspects the model is determinedby comparing visual elements of the website at the first and secondtimes which visual elements indicate a storage location or structure ofwebsite data. In yet other aspects the telecom fee website is atelecommunication provider website which provides information on serviceplans offered by one or more telecommunication providers. In still otheraspects the telecom fee website is a regulatory website whichinformation on regulatory taxes and/or charges associatedtelecommunication services.

In other aspects a Robotic Process Automation (RPA) system formonitoring website structure and capturing website data is provided. Thesystem includes a computer having a storage and a network connection.Software executes on the computer comprising a first RPA softwareadapted to access one or more telecom fee websites to gather telecomdata selected from the group consisting of: data related to telecomservice plans, data related to telecom rate plans, telecom service usagedata and combinations thereof. The first RPA program determines a modelof the one or more telecom fee websites based on the telecom datagathered, the model identifying website structure relevant to gatheringtelecom data at future times. The first RPA program accesses the one ormore telecom fee websites to determine changes to the one or moretelecom fee websites as compared to the model and based on the changesidentified, said first RPA program determining if telecom data can beaccessed even with the changes and if the first RPA program determinesthe telecom data cannot be accessed, the first RPA program issuing analert and the model is updated in response to the alert; and if thefirst RPA program determines the telecom data can be accessed, the modelis updated if necessary.

In certain aspects, if the first RPA program determines that the telecomdata can be accessed, the model is updated such that the model reflectsthe changes to the one or more telecom fee websites relates toirrelevant information to obtaining the telecom data. The telecom feewebsite could have a variety of telecom related expense information suchas invoices/bills, government fees and various other taxes andmiscellaneous charges that are applied to a telecom bill. Thisinformation may be available from multiple different websites. In yetother aspects the model identifies website elements selected from thegroup consisting of: recognizable website shapes indicative of buttons,tag names, field names, alt text for images, menus and combinationsthereof and wherein when changes are identified in the one or moretelecom fee websites, the elements are compared to first informationindicative of telecommunication plan structures and/or pricingassociated with the changers to determine if the changes impact if thetelecom data can be accessed by the first RPA program. In still otheraspects the first information is selected from the group consisting ofkey words, synonyms or similar terms. In yet other aspects the RPAprogram identifies website features within the modeled website data byidentifying a search function within the website and using key words,synonyms to the keywords, similar terms to the keywords and combinationsthereof to perform a search using the website function to provide anarrowed set of modeled website data, the RPA program furtherdetermining, from the narrowed set of modeled website data, the telecomdata. In still other aspects the modeled website data identifies astructure of the website indicative of two or more types of datapresented in two or more locations and wherein the modeled website dataat the second time is generated by identifying changes within less thanall of the two or more locations based on one of less than all of thetypes of data the RPA program searches for. In yet other aspects themodeled website data identifies groupings of categories of data andidentifies locations on the websites where those categories of data arelocated and wherein the RPA identifies one or more of the categories ofdata to obtain the telecom data at the second time in order to obtainthe updated rate plan data. In still other aspects the first RPAmodifies a selection of at least one telecommunications rate plan forthe one or more telecommunication devices at a telecommunicationsprovider server to include a rate plan for the one or moretelecommunication devices available with the updated rate plan data butnot available prior to the changes to the one or more telecom feewebsites.

In yet other aspects a Robotic Process Automation (RPA) system foridentifying updates to website data used by other RPA routines isprovided. The system includes a computer having a storage and a networkconnection and software executing on the computer comprising a first RPAsoftware adapted to access one or more websites and model said one ormore websites to generate modeled website data. The software isconfigured to perform a comparison by comparing said modeled websitedata to known data indicative of website data used by a second softwareand based on the comparison, issuing an alert accessible to the secondsoftware if the modeled website data indicates that the website dataused by the second software may have changed. The first RPA program isadapted to receive a second notification from the second softwareindicative that the comparison indicates the website data has changedand further updating the known data which is used at a next time thatthe first RPA software models website data and then performs thecomparison by then comparing the modeled website data to the known datawhich has been updated.

In certain aspects the first RPA software accesses the one or morewebsites to generated the modeled website data at first time determinedbased on being prior to a known time the second RPA attempts to accessthe website data which first time is between a last time the second RPAaccessed the website data and the known time. In still other aspects theknown data is indicative of where telecom expense management (TEM) datacan be accessed. In yet other aspects the TEM data is data related torate plans for use of one or more telecommunications services. In yetother aspects the model uses website characteristics to determine how toaccess the TEM data, the website characteristics selected from the groupconsisting of: synonyms, known phrases, pseudonyms, image files,alternate text, menu systems, common locations to find data, file namingconventions using dates, times, and/or key words, image recognition andcategorization, and combinations thereof.

In yet other aspects, a Robotic Process Automation (RPA) system isprovided for identifying updates to website data used by other RPAroutines, the system includes a computer having a storage and a networkconnection. Software executes on said computer comprising a first RPAsoftware adapted to access one or more websites and model said one ormore websites to generate modeled website data, said software configuredto perform a comparison by comparing said modeled website data to knowndata indicative of website data used by a second software. The first RPAprogram determines accessibility to website data has changed based onthe comparison, the first RPA program uses website characteristics todetermine how to access the TEM data, the website characteristicsselected from the group consisting of: synonyms, known phrases,pseudonyms, image files, alternate text, menu systems, common locationsto find data, file naming conventions using dates, times, and/or keywords, image recognition and categorization, and combinations thereof.The first RPA program accesses the one or more websites based on anupdated model that is determined based on the website characteristics.

In one configuration, a system is provided that utilized RPA bots toautomatically scan and investigate vendor websites to gather the data onthose websites to create a model of each vendor website. This in turncan be used by the RPA bots as a look up reference to find relevantinformation needed to analyze and resolve payment of a bill for acurrent billing cycle. In the case where a particular vendor website maychange (e.g., new pages or tabs may be added, existing information maybe moved to a different tab or be accessed through a different login,and the like), the model can be used as a reference for the RPA toprovide intelligence as to how to learn and find the needed informationon the newly configured website.

In another configuration, consider an example of a TEM customer who hasgone through the exercise of evaluating existing telecom plans and theiruser needs, and comes up with what they consider is an ideal telecomplan for their particular needs. The plan meets the budget constraintsand provides adequate coverage at an optimal cost.

This situation is in reality, however nothing more than a singlesnapshot in time. Most likely by the time the ink is dry on the telecomcontract, there are already users experimenting with new applicationsthat use increased data, manufacturers are on the verge of releasing newdevices, and the next latest and greatest social media or work forcemanagement collaboration technology being released, tried and adopted.

In addition, the competitors of the chosen carrier continue to evolveand adapt in the changing market offering lucrative incentives andtailored plans to meet the latest trends and lure away customers fromtheir competition.

The customer who just signed up for a year or possibly two or three,will most likely be discouraged from doing the labor-intensive exerciseof analyzing the companies needs and matching this to the latestofferings on a regular basis. Instead, they will live with the selectedplans based on that snapshot in time and only really look at changes asthe contract comes up for renewal or a very noticeable increase inspending occurs.

To a large degree, companies don't question telecom expenses. Thisessential service is not something that can be cut back or restricted.Communications is the lifeblood of most companies when it comes tosales, marketing, and support. All these intensively depend on reliable,fast and available telecom services to communicate with clients,prospects, partners and suppliers. Studies have shown that manycompanies will spend more time auditing a $1,000 travel expense reportthan they will a $100,000 telecom bill. No one is willing to tell thedivision executive to cut back on his data use or limit his calls.

The system and method proposed utilizes an automated RPA thatcontinually monitors and analyzes the availability of new offerings suchas plans, devices, features, and apps as they become available. Second,it will continually monitor how the exiting plans in place are activelybeing used by the customers to identify what the customers current needsare and identify trends.

Now, consider again the example a company that has just signed up for aplan but is now facing some economic challenges and was forced to reduceits sales force (e.g., by ½). Further, the company moves from a paradigmof extensive travel to one of extensive remote work involving a verylarge increase in video conferencing and a large reduction in telephoneroaming. Clearly, any plans that were signed up for before such changeshave become essentially obsolete and far from optimal for the currentsituation.

Existing users will likely incur overage costs for their data, resultingin budget overruns despite the company having reduced the number oflines with the staff reduction and reduced travel. The large roamingplans are a waste of budget dollars and the lack of adequate data plansto accommodate the additional bandwidth are preventable and optimizable.Of course, those making the staff reduction decisions, adopting thetools for increased video use or bringing new tools and processes onboard, rarely consider the TEM aspect to such moves. Often, they are noteven aware of what plans are in place or what the potential impacts are.To a large degree, it is unrealistic to expect that to change. Adepartmental head specialized in running part of the business would notlikely take an interest in such details. For this reason, an automatedbot such as the one proposed is key to provide the necessary insightsand to make necessary changes as they take place.

It is understood that changes can be made within month with mostcarriers based on usage. Going back to the example, once the newlyadopted video conferencing polices take place, the bots would detectincreased usage within the month that it is occurring and would changeover the plans to higher data plans before the bill is issued in anattempt to avoid overage charges.

Similarly, when no roaming has occurred, the bots could disable roamingfeatures to recoup these costs. In some cases, the bots can interactwith travel booking systems and detect that no travel has been plannedfor corporate functions and can also use that as an indicator to adjustdownward various roaming features.

The RPA monitoring telecom usage detects changes in usage by a companyand employs a set of measurement thresholds, which are used to helpdetermine whether an action should be taken to change plans or whetherto notify another plan optimization RPA.

While the system is intended to run automatically and autonomously inthe background to look for TEM data, it is also possible to run such asystem in an assisted mode to run partial tasks to help a humanoperator. The system can be configured in any manner desired by thecustomer.

What is desired then is a system and method to detect the changes bothin new offerings from telecom service providers as well as changes inuser behavior as it is mapped to a TEM system. RPAs can automatically benotified of potential changes affecting their function so they can takeappropriate action in a timely fashion without human intervention.

In one embodiment, the system accesses vendor or carrier systems lookingfor TEM offerings such as plans and features that can be mapped to userusage behavior.

In another embodiment, the system may query carrier systems to obtainthe latest user usage data and behavior of TEM related devices.

In yet another embodiment, the system may notify downstream RPA systemsof changes occurring to usage behavior or the availability of new plans,regulations or fees. These secondary RPAs are used for more detailedplan selection and mapping and thus have a ‘heads up’ of changes and canrun earlier than usual to ensure there is no significant delays shouldmanual intervention be required.

In one configuration a system and method of logging into and navigatinga carrier websites or portals using an input model outlining a set ofsteps to locate and obtain the target TEM data is provided. This is usedto detect and discover new and existing plans and features.

In another configuration a system and method are provided by which theRPA robot can obtain user usage data from billing information in termsof voice, data, SMS, and roaming usage, as well as application-levelusage. Highly granular data can be obtained, and in some cases eventransaction level data within an application can be obtained. Costsavings can also be extended to software licensing models in addition totelecom costs for bandwidth alone.

The method still further comprises the steps of handling exceptions suchas errors in capturing the data that include triggering manualintervention where required.

Other aspects and features of the present invention will become apparentfrom consideration of the following description taken in conjunctionwith the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A-1C are block diagrams showing and RPA system and how websitemodels are created and monitored.

FIG. 2 is a logical flow diagram according to FIGS. 1A-1C.

FIG. 3 is a block diagram illustrating an RPA process detecting changesin user behavior and available plans which can be used in connectionwith the RPA system of FIGS. 1A-C.

FIG. 4 is a block diagram illustrating an RPA process of retrieving,parsing and comparing plans which can be used in connection with the RPAsystem of FIGS. 1A-C.

FIG. 5 is a block diagram illustrating an RPA process of retrieving,parsing and comparing historical usage which can be used in connectionwith the RPA system of FIGS. 1A-C.

FIG. 6 is a block diagram illustrating an RPA process of determining ifchanges have occurred which can be used in connection with the RPAsystem of FIGS. 1A-C.

DETAILED DESCRIPTION OF THE INVENTION

Referring now to the drawings, wherein like reference numerals designatecorresponding structure throughout the views. The following examples arepresented to further illustrate and explain the present invention andshould not be taken as limiting in any regard.

Referring to FIG. 1A, the computer 2 is shown with monitoring software 8and TEM system software 11. The monitoring software 8 monitors thewebsites 4 for changes via a network 1, particularly changes that mayimpact the ability of the TEM software 11 to obtain data 21. Thismonitoring software 8 accomplishes this by creating a website model 24that helps determine the structure and organization of the website 4,particularly where data of interest is stored and how to access thatdata. This information may be learned by looking at menu hierarchy,images/frames, alt text describing features of a website and otheridentifying features which indicate where data can be accessed. Thiswebsite model 24 is also determined based on known data 12 which canindicate what data the TEM software 11 uses and where that data comesfrom/how it is accessed. With this website model 24 created, themonitoring software 8 checks the websites 4 for changes. As changes aredetected, the monitoring software 8 determines if those changes couldimpact the ability for the TEM system software 11 to obtain the data 21.In that case, an alert 14 is issued to the TEM software 11 which mayattempt to obtain data based on the alert 14 or determine based on thealert that there is no change to the ability to obtain data. A response16 is sent back and the monitor software can update the website model 24and the storage 26. In some cases, the response 16 may indicate an issuewith obtaining data at which point changes to the way in which data isobtained 21 may be made in order to compensate for the website changes.Based on the response 16, the website model and/or any thresholds forissuing alerts 14 may be modified based on if the alert was correctlyissued or not.

The known data 12 of the storage can indicate information related towebsite characteristics which are associated with website data 6 thatthe TEM software 11 uses. These website characteristics can include,e.g. synonyms, known phrases, pseudonyms, image files, alternate text,menu systems, common locations to find data, file naming conventionsusing dates, times, and/or key words, image recognition andcategorization, and combinations thereof. This information can be usedby the monitoring software 8 to determine when changes occur that areassociated with a response 16 indicating the TEM software 11 could notobtain some or all of the data 21, the website characteristics can beused in connection with a new or updated website model 24 or to betterrefine the model to attempt to determine where the data that could notbe obtained after the update can now be obtained. The monitoringsoftware 8 can then issue another alert 14 to the TEM software, but thistime, the alert can indicate modifications to how the TEM software 11obtains the data 21.

FIGS. 1B and 1C are similar in many respects to FIG. 1A, but where FIG.1A included the monitor software 8 and TEM software 11 as two programson a computer (which could be multiple computers within a serverarrangement), FIG. 1B shows two separate computers 2 and 2′, these maybe in communication over a network. This could be e.g. the internet orvarious combinations of network connections, depending on thearchitecture. The network between computers 2 and 2′ is not shown forspace saving. FIG. 1C provides a configuration where the monitorsoftware 8 and TEM software 11 are part of the same program in that thesoftware 8 and 11 may be portions of code within a larger program 81.The alerts and responses shown in FIGS. 1A and 1B still apply in FIG.1C, but are not shown.

FIG. 2 provides a process flow diagram whereby the telecom website isaccessed 1000 and telecom data is obtained 1002. The monitoring software8 determines the structure of that access 1004 so that it can come backat a later time and gather updated data, for example, the next month'sinformation. This structure will inform how data can be gathered. Thewebsite structure 1006 is then identified by the software 8 and a modelis generated 1008. Data used by the TEM software is identified 1010, forexample by accessing the storage 26 which may be periodically updated22. With the model determined and the data used by the software alsoknown, the model and the data used are related 1012. Then, the websiteis monitored for changes 1014, specifically that would impact the modeland how data updates are obtained. Based on this monitoring, changes tothe website may be determined 1016 and the software 11 is notified 1018of changes that may impact the ability to gather data. The TEM software11 then determines if those changes impact the ability to gather dataand a response received at the software 8. Based on the response, thesoftware 8 can modify how it monitors/notifies of website changes. Asshown in FIG. 1A, a notification 15/15′ can also be made to other RPAsoftware routines 23/23′ which may use data. The notification may comefrom the monitor software 8 or the TEM system software 11 or generallyfrom the computer(s) running this software.

FIG. 3 depicts an RPA process with further details how the monitoringsoftware 8 integrates with the TEM software 11 where the TEM softwaredetects changes in user behavior and in this case available plans. TheRPA of the software 11 starts (10) by obtaining the actual usage datafrom the user data (30) available from carrier feeds along with theexisting plans (40) from the carrier. It then compares (20) this actualusage to the plans in place. This allows for a comparison to see howwell the plans are performing in meeting the actual usage, or converselyhow the current usage matches with the existing plans in place.

If changes have occurred (50), in usage patterns (30) so that these donot fit with the existing plans (40) the RPA will notify other RPAs (60)that may require additional time to run if they rely on this informationto complete. In many cases, these additional RPAs may have time criticalfunctions that may be slowed down by changes, especially if these end upputting the downstream RPA in a mode that requires manual interventionor escalation.

The RPA then obtained available plans (80) from the carrier and compares(70) these with the existing plan to see any of these have changed. Ifchanges have occurred (90) it then notifies other RPAs that may bedependent on these plans. Again, to aid in the processing time requiredfor the often time critical RPAs to run. This monitoring andnotification of other RPAs

In most cases, when no changes have occurred, the RPA simply acts tomonitor usage and monitor available plans, features and devices.However, if changes have occurred, the notifications (60) can give amargin to the other RPAs by giving them a heads up. In one such example,processing invoices within a week or receipt can give customers adiscount. Regardless of the reason, if changes to plans (80) haveoccurred and the RPA processing the invoices required plans to complete,we may miss substantial discounts if we don't meet the processingdeadline. Given that these downstream RPAs can only initiate once theinvoice is provided, any heads up to monitor invoice receipt morefrequently or to preprocess the changes in available plans before theinvoice is received can all optimize the process and help ensure thetimeline is kept.

As explained previously, the system can be configured to create a modelof a vendor website. Being able to pull all relevant and irrelevantinformation from a vendor portal, provides the ability to create a modelfor discerning the appropriate path via the normalization ofinformation. It also enhances the model and potentially allow forexpansion it into other areas. In effect, it is similar to inventoryingkeywords on a website but both a narrower and a broader scope. The RPAbots are focusing on accurate information for future data-pullactivities.

In pulling data from vendor portals, where specific APIs are notavailable, the RPA bot must navigate and parse the available data fromthe source page data available on the portal. This can include buttonsthat can be examined for recognizable shapes and locations (i.e.,hamburger menu, magnifying class etc.), and then tag and field namesthat can be matched to key words or synonyms. In many cases, websitesare required to be accessibility compliant and provide alt text forimages and menus that can be read out to visually impaired. Key wordscan often be found in this text that can help an RPA find a desiredtarget.

RPAs can also leverage the website features themselves to find a target.For example, using the search bar of a website to look for invoices, maybring up a set of results in a pane which the RPA can parse. This can bea time saver compared to traversing the raw website data usingtraditional techniques.

In pulling this data together, the primary purpose may be to find a dataset, such as the latest invoice. However, it is also possible to createa full model of what information is contained on the website as well ashow the website is organized.

In the first case, a model is formed of all the available data that maybe of interest to applications both present and future. This data setwill certainly vary from one vendor to the next and the RPA cannormalize the data keeping track of vender specific transformationsrequired. For example, if looking at customer data use, one vendor mayshow daily maximums whereas another vendor may show weekly maximums andanother monthly totals only. In such cases, the RPA can transform thedata keeping daily, weekly and monthly totals by adding up the dailytotals to form weekly and monthly totals and by evenly dividing themonthly totals into days and weeks when the vendor does not supply thegranular data. In another example, the conversions may entail unitconversions or additional processing. For example, one vendor may showdata use but another may show a percentage of plan used. The RPA cangenerate the percentage of plan based on the usage and plan limits tofill the data out in a model that is normalized across vendors and showsa superset of relevant data.

In the second and broader case, a model is created regarding thestructure and presentation of the website. Such a model shows thelogical grouping of relevant data and where it is kept in relation toother data. This can help RPA search bots more quickly discover andretrieve relevant data by having a better idea of the organization andstructure. For example, the RPA can discover that historical data past 3months is kept in a separate archived area. Knowing this and presentingin the model will help other RPAs save the trouble of searching for datasuch as invoices and getting false positives when they find the localmore recent store of invoices. It can also save confusion for these botsas they may toggle between recent data and historical data trying tolearn the structure but get confused when they find one invoice in eacharea but not the other. In a worst case scenario, they learn that thisis NOT the right area for invoices, and then direct the next search tothe other area, once again discovering that the prior area was the rightone as they are not sophisticated enough to realize the implication ofthe invoice date.

In another example, group data may be all listed together with a groupID and knowing what group a user is in we can narrow down a set of databy group quickly. Another vendor may not offer group IDs but insteadallows sorting by plan, or another by device type (or all of the above).In these cases, the model can provide the details to the search bot ofwhat meta data and what data groupings and relations ships are availableon a given site as a common definition shared between sites. To be morespecific, if a website grouped users into groups, the model couldinclude a Y/N field to show the search bot using the model that this ispresent and can be used. These models and be extended as in the firstcase described above to include a normalized model for all sites. Insuch a case, going back to the groups example, the model can go as faras creating the data set from existing data which adds the group to anintermediate data set so that all data looks the same. In most casesthis is not necessary, but when comparing plans or data sets acrossvendors, having a uniform normalized set of data can be of interest andcan be supported.

Referring to FIG. 4 , the process of normalizing available plan data isshown. The process starts 110 by logging into the carrier system 120.Carrier data 130 is accessed and retrieved 150 using a carrier specificAPI or otherwise by website access structure. The data is normalizedamong a number of carriers 160 into a unified format. For example thisnormalized data may include the plan names 300 (as shown FreeTalk100(200), FreeData5 (220), Unlimited (240), the available minutes 310, theoverage cost 320, the data limit 330, the additional data cost 330, themessage limit 350 and the overage cost 360. As shown in the unlimitedplan, limits are set, but the additional cost is zero, thus an input ofinfinite minutes or the maximum number possible during the billingperiod does not need to be input as it is known that there is no overagecharge.

Referring to FIG. 5 , the process of normalizing usage data is shown.The process starts 410 by logging into the carrier system 420 andaccessing historical data 430, invoices are received 450, and the datais normalized 460. The normalized format is shown with the names 500,520, 540 as shown, the existing plan 610, the actual usage of voice 620,the actual data use 630, the SMS use 640 along with the averages 650,660, 670 based on historical usage. Whether there are overages is thenindicated 680 which can be useful for pooling users into lower limitplans to save costs or increasing the usage available for certain usersto avoid overages. As this information is updated, various RPAs use thisinformation to manage costs. However, the log on process 420 may changeor the website change.

Referring to FIG. 6 , the process of identifying problems accessing datais shown. The process starts 710 by locating carrier systems 720 andaccessing the data store 730. If found, a login process is used 750 andif working 760, the last known area where plans are stored is navigatedto 780. The parameters are reviewed accessed to determine changes andthe system starts over. If at any time if the carrier system is notfound 740, the login does not work 760 or the data is not found 780, theprocess of notifying other RPA that use the data 800 begins. Thenotification is generated 820 and sent to the RPAs 833, 831, 830. Atable of subscribed RPAs 810 may be kept and updated as RPA data usechanges.

While the invention is susceptible to various modifications, andalternative forms, specific examples thereof have been shown in thedrawings and are herein described in detail. Is should be understoodhowever that the invention is not to be limited to the forms or methodsdisclosed but to the contrary, the invention is to cover allmodifications, equivalents and alternatives falling within the scope ofthe disclosures and/or claims.

What is claimed is:
 1. A Robotic Process Automation (RPA) system foridentifying updates to website data used by other RPA routines, thesystem comprising: a computer having a storage and a network connection;a first RPA program comprising software executing on said computer whichis adapted to access known data on the storage, the known dataindicative of website data used by a second software; said first RPAprogram configured to access one or more websites via the network toperform a comparison, based on the known data, to determine if changeshave been made to the one or more websites which changes may impact ifthe second software can obtain data from the one or more websites; saidfirst RPA program issues an alert accessible to the second software ifthe comparison indicates that the website data used by the secondsoftware may be accessible in a different way than indicated by theknown data; the first RPA program adapted to receive a response from thesecond software indicative if accessibility of the website data haschanged, wherein computer updates the known data.
 2. The system of claim1 wherein the known data which has been updated is used in thecomparison at a next time the first RPA software accesses one or morewebsites to perform the comparison.
 3. The system of claim 1 wherein thefirst RPA program determines modeled website data based on the websitedata and compares to the known data to determine structure or storagelocations of the website data has changed.
 4. The system of claim 1wherein the known data is indicative of a model of at least one of theone or more websites, the model indicates where the website data used bythe second software is stored based on a prior retrieval of website databy the second software, the first RPA program performs the comparison byaccessing the website data to determine modeled website data indicativeof a second model of the at least one of the one or more websites, thecomparison determines if the model and the second model are different.5. The system of claim 4 wherein the alert is indicative of differencesbetween the model and the second model.
 6. The system of claim 5 whereinthe response is indicative of whether the differences impact an abilityof the second software to obtain data for the second software to run. 7.The system of claim 5 wherein based on the response indicating thedifferences do not impact the ability of the second software to obtaindata, the first RPA program modifies how it determines modeled websitedata.
 8. The system of claim 1 wherein based on the response indicatingaccessibility of the website data the second software uses has notchanged based the first RPA program modifies how it issues alerts basedon the comparison to reduce a likelihood that the alert associated withthe response would have been issued.
 9. The system of claim 1 whereinthe first RPA program and the second software are part of one softwareprogram executing on the computer.
 10. The system of claim 1 wherein theone or more websites include a telecom provider website whichcommunicates information on telecommunication service plans.
 11. ARobotic Process Automation (RPA) system for identifying updates towebsite data used by other software, the system comprising: a computerhaving a storage and a network connection; software executing on saidcomputer comprising a first RPA software adapted to access one or moretelecom fee websites at a first time and model the one or more telecomfee websites to generate modeled website data at the first time, saidmodeled website data stored in the storage and the first RPA softwareutilizes the modeled website data to identify website data used by asecond software; the first RPA software adapted to access the one ormore telecom fee websites at a second time, later than the first time,to identify changes to the website compared to the modeled website dataand the first RPA software issuing a notification accessible to thesecond software indicative that the changes may impact an ability of thesecond software to capture data used by the second software; the secondsoftware issues a response accessible to said first RPA softwareindicative of if the changes impact the ability of the second softwareto capture data used by the second software and based on the alert, thefirst RPA software updates how alerts are issued based on the response.12. The system of claim 11 wherein the first RPA software updates howalerts are issued by reducing likelihood an alert would be issued basedon identified changes which previously issued an alert with a responseindicating the changes do not impact the ability of the second softwareto capture the data used by the second software.
 13. The system of claim11 wherein the first and second times are each prior to an expected timethat the second software will obtained the website data.
 14. The systemof claim 11 wherein the first and second times are both after a mostrecent time that the second software obtained the website data.
 15. Thesystem of claim 11 wherein the model is determined by comparing visualelements of the website at the first and second times which visualelements indicate a storage location or structure of website data. 16.The system of claim 11 wherein the telecom fee website is atelecommunication provider website which provides information on serviceplans offered by one or more telecommunication providers.
 17. The systemof claim 11 wherein the telecom fee website is a regulatory websitewhich information on regulatory taxes and/or charges associatedtelecommunication services.
 18. A Robotic Process Automation (RPA)system for monitoring website structure and capturing website data, thesystem comprising: a computer having a storage and a network connection;software executing on said computer comprising a first RPA softwareadapted to access one or more telecom fee websites to gather telecomdata selected from the group consisting of: data related to telecomservice plans, data related to telecom rate plans, telecom service usagedata and combinations thereof; said first RPA program determining amodel of the one or more telecom fee websites based on the telecom datagathered, the model identifying website structure relevant to gatheringtelecom data at future times; said first RPA program accessing the oneor more telecom fee websites to determine changes to the one or moretelecom fee websites as compared to the model and based on the changesidentified, said first RPA program determining if telecom data can beaccessed even with the changes and if the first RPA program determinesthe telecom data cannot be accessed, the first RPA program issuing analert and the model is updated in response to the alert; and if thefirst RPA program determines the telecom data can be accessed, the modelis updated if necessary.
 19. The system of claim 18 wherein if the firstRPA program determines the telecom data can be accessed, the model isupdated such that the model reflects the changes to the one or moretelecom fee websites relates to irrelevant information to obtaining thetelecom data.
 20. The system of claim 19 wherein the model identifieswebsite elements selected from the group consisting of: recognizablewebsite shapes indicative of buttons, tag names, field names, alt textfor images, menus and combinations thereof and wherein when changes areidentified in the one or more telecom fee websites, the elements arecompared to first information indicative of telecommunication planstructures and/or pricing associated with the changers to determine ifthe changes impact if the telecom data can be accessed by the first RPAprogram.
 21. The system of claim 20 wherein the first information isselected from the group consisting of key words, synonyms or similarterms.
 22. The system of claim 19 wherein the RPA program identifieswebsite features within the modeled website data by identifying a searchfunction within the website and using key words, synonyms to thekeywords, similar terms to the keywords and combinations thereof toperform a search using the website function to provide a narrowed set ofmodeled website data, the RPA program further determining, from thenarrowed set of modeled website data, the telecom data.
 23. The systemof claim 19 wherein the modeled website data identifies a structure ofthe website indicative of two or more types of data presented in two ormore locations and wherein the modeled website data at the second timeis generated by identifying changes within less than all of the two ormore locations based on one of less than all of the types of data theRPA program searches for.
 24. The system of claim 19 wherein the modeledwebsite data identifies groupings of categories of data and identifieslocations on the websites where those categories of data are located andwherein the RPA identifies one or more of the categories of data toobtain the telecom data at the second time in order to obtain theupdated rate plan data.
 25. The system of claim 19 wherein the first RPAmodifies a selection of at least one telecommunications rate plan forthe one or more telecommunication devices at a telecommunicationsprovider server to include a rate plan for the one or moretelecommunication devices available with the updated rate plan data butnot available prior to the changes to the one or more telecom feewebsites.
 26. A Robotic Process Automation (RPA) system for identifyingupdates to website data used by other RPA routines, the systemcomprising: a computer having a storage and a network connection;software executing on said computer comprising a first RPA softwareadapted to access one or more websites and model said one or morewebsites to generate modeled website data, said software configured toperform a comparison by comparing said modeled website data to knowndata indicative of website data used by a second software; when thefirst RPA program determines accessibility to website data has changedbased on the comparison, the first RPA program uses websitecharacteristics to determine how to access the TEM data, the websitecharacteristics selected from the group consisting of: synonyms, knownphrases, pseudonyms, image files, alternate text, menu systems, commonlocations to find data, file naming conventions using dates, times,and/or key words, image recognition and categorization, and combinationsthereof; the first RPA program accesses the one or more websites basedon an updated model that is determined based on the websitecharacteristics.